/*! 目前使用socket.io,此方案废弃 */
import { WebSocketServer } from "ws";
import config from "../config";

let startWebSocketServer = () => {
  // 创建WebSocket服务器
  const wss = new WebSocketServer({ port: config.port + 1 });

  // 存储所有连接的WebSocket对象
  const connections: any = [];

  // 监听连接事件
  wss.on("connection", function (ws) {
    console.log("新连接已建立");

    // 将连接对象存储在数组中
    connections.push(ws);

    // 监听接收消息事件
    ws.on("message", function (message) {
      console.log("接收到消息:", message.toString());

      /* TODO ：处理接收到的消息，
        1.存储收到的信息
        2.通知相同房间的浏览器
      */
      // 发送消息给所有连接的浏览器（需修改成上方TODO 2）
      connections.forEach(function (connection: any) {
        connection.send("Hello Client");
      });
    });

    // 监听关闭连接事件
    ws.on("close", function () {
      console.log("连接已关闭");

      // 从数组中移除已关闭的连接对象
      const index = connections.indexOf(ws);
      if (index !== -1) {
        connections.splice(index, 1);
      }
    });
  });
};

export default {
  startWebSocketServer,
};
